package com.probox.common.entity.service.product;

import java.util.HashMap;
import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.probox.customer.api.domain.CustomerGroupDefinitionQuery;
import com.probox.product.api.domain.ProductOptVo;
import com.probox.common.entity.domain.product.ProductOperationDetail;
import com.probox.common.entity.domain.product.vo.ProductInfoQuery;
import com.probox.common.entity.domain.product.vo.ProductOperationDetailVo;

/**
 * 用户行为日志Service接口
 *
 *
 * @date 2021-05-28
 */
public interface IProductOperationDetailService extends IService<ProductOperationDetail> {



    /**
     * 查询用户行为日志
     *
     * @param detailUid 用户行为日志ID
     * @return 用户行为日志
     */
    public ProductOperationDetail selectProductOperationDetailById(Long detailUid);


    /**
     * 查询用户行为日志列表
     *
     * @param productOperationDetail 用户行为日志
     * @return 用户行为日志集合
     */
    public List<ProductOperationDetail> queryList(ProductOperationDetail productOperationDetail);


    /**
     * 新增用户行为日志
     *
     * @param productOperationDetail 用户行为日志
     * @return 结果
     */
    public boolean insertProductOperationDetail(ProductOperationDetail productOperationDetail);

    /**
     * 修改用户行为日志
     *
     * @param productOperationDetail 用户行为日志
     * @return 结果
     */
    public boolean updateProductOperationDetail(ProductOperationDetail productOperationDetail);

    /**
     * 批量删除用户行为日志
     *
     * @param detailUids 需要删除的用户行为日志ID
     * @return 结果
     */
    public boolean deleteProductOperationDetailByIds(Long[] detailUids);

    /**
     *  查询我的分享列表
     * @param query
     * @return
     */
    public List<HashMap> queryList(ProductInfoQuery query);

    /**
     * 添加分享详情
     * @param productUid
     */
    public void save(Long productUid);

    public List<ProductOperationDetailVo> getOptList(Long productUid);


    /**
     * 查看首页的购买行为
     * @return
     */
    public List<ProductOperationDetailVo> getOptBuyList();

    /**
     * 获取入群信息
     * @param query
     * @return
     */
    public List<ProductOptVo> getMemberUid(CustomerGroupDefinitionQuery query);
}
